package model;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

public class Turma {

	private int numero;	
	private int capacidade;	
	private Turno turno;		
	private Calendar dataInicio;	
	private Calendar dataFim;	
	private List<Aluno> alunos = new ArrayList<Aluno>();
	private Professor professor;
	private Curso curso;
	
	public Turma() {}

	public int getNumero() {
		return numero;
	}

	public void setNumero(int num) {
		this.numero = num;
	}

	public int getCapacidade() {
		return capacidade;
	}

	public void setCapacidade(int capacidade) {
		this.capacidade = capacidade;
	}

	public Turno getTurno() {
		return turno;
	}

	public void setTurno(Turno turno) {
		this.turno = turno;
	}

	public Calendar getDataInicio() {
		return dataInicio;
	}

	public void setDataInicio(Calendar dataInicio) {
		this.dataInicio = dataInicio;
	}

	public Calendar getDataFim() {
		return dataFim;
	}

	public void setDataFim(Calendar dataFim) {
		this.dataFim = dataFim;
	}

	public void addAluno(Aluno a){
		alunos.add(a);
		a.addTurma(this);
	}
	
	public void removeAluno(Aluno a){
		alunos.remove(a);
		a.removeTurma(this);
	}
	
	public List<Aluno> getAlunos() {
		return alunos;
	}

	public void setAlunos(List<Aluno> alunos) {
		this.alunos = alunos;
	}

	public Professor getProfessor() {
		return professor;
	}

	public void setProfessor(Professor professor) {
		Professor aux = this.professor;
		this.professor = professor;
		if(professor==null && aux!=null)
			aux.removeTurma(this);
		if(professor!=null)
			professor.addTurma(this);
	}

	public Curso getCurso() {
		return curso;
	}

	public void setCurso(Curso curso) {
		Curso aux = this.curso;
		this.curso = curso;
		if(curso==null)
			aux.removeTurma(this);
		else
			curso.addTurma(this);
	}
	
	public int getVagas(){
		return capacidade - alunos.size();
	}
	
}
